:art: Screen login

huangqimin001 3 years ago
parent
commit
fa25d05784
5 changed files with 79 additions and 1 deletions
  1. 16 0
      api/point_views.py
  2. 41 0
      api/screen_views.py
  3. 9 1
      api/urls.py
  4. 1 0
      utils/redis/rkeys.py
  5. 12 0
      utils/redis/rpoint.py

+ 16 - 0
api/point_views.py

@@ -5,6 +5,7 @@ from __future__ import division
5 5
 from django_logit import logit
6 6
 from django_query import get_query_value
7 7
 from django_response import response
8
+from paginator import pagination
8 9
 
9 10
 from equipment.models import IsolationPointInfo, IsolationPointUserInfo, ThermometerEquipmentInfo
10 11
 from utils.error.errno_utils import IsolationPointStatusCode
@@ -27,6 +28,21 @@ def measure_window(request):
27 28
 
28 29
 
29 30
 @logit
31
+def get_point_list(request):
32
+    page = request.POST.get('page', 1)
33
+    num = request.POST.get('num', 20)
34
+
35
+    points = IsolationPointInfo.objects.filter(status=True)
36
+    points, left = pagination(points, page, num)
37
+    points = [point.data for point in points]
38
+
39
+    return response(data={
40
+        'points': points,
41
+        'left': left,
42
+    })
43
+
44
+
45
+@logit
30 46
 def get_point_info(request):
31 47
     point_id = request.POST.get('point_id', '')
32 48
 

+ 41 - 0
api/screen_views.py

@@ -0,0 +1,41 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from __future__ import division
4
+
5
+import shortuuid
6
+from django.conf import settings
7
+from django_logit import logit
8
+from django_response import response
9
+
10
+from utils.redis.rpoint import get_point_info, set_point_info
11
+
12
+
13
+@logit
14
+def screen_login(request):
15
+    uuid = shortuuid.uuid()
16
+
17
+    return response(data={
18
+        'login_uuid': uuid,
19
+        'login_url': f'{settings.DOMAIN}/api/mp/screen/login?uuid={uuid}',
20
+    })
21
+
22
+
23
+@logit
24
+def screen_info_set(request):
25
+    uuid = request.POST.get('uuid', '')
26
+    point_id = request.POST.get('point_id', '')
27
+
28
+    set_point_info(uuid, point_id)
29
+
30
+    return response()
31
+
32
+
33
+@logit
34
+def screen_info(request):
35
+    uuid = request.POST.get('uuid', '')
36
+
37
+    point_id = get_point_info(uuid)
38
+
39
+    return response(data={
40
+        'point_id': point_id,
41
+    })

+ 9 - 1
api/urls.py

@@ -2,7 +2,7 @@
2 2
 
3 3
 from django.conf.urls import url
4 4
 
5
-from api import admin_views, eqpt_views, field_views, mini_views, oauth_views, point_views, wx_views
5
+from api import admin_views, eqpt_views, field_views, mini_views, oauth_views, point_views, screen_views, wx_views
6 6
 
7 7
 
8 8
 urlpatterns = [
@@ -31,6 +31,7 @@ urlpatterns += [
31 31
 urlpatterns += [
32 32
     url(r'^point/measure_window$', point_views.measure_window, name='measure_window'),
33 33
 
34
+    url(r'^point/list$', point_views.get_point_list, name='point_list'),
34 35
     url(r'^point/info$', point_views.get_point_info, name='point_info'),
35 36
 ]
36 37
 
@@ -58,3 +59,10 @@ urlpatterns += [
58 59
     url(r'^mp/save_point_fields$', point_views.save_point_fields, name='save_point_fields'),
59 60
     url(r'^mp/bind_eqpt$', point_views.bind_eqpt, name='bind_eqpt'),
60 61
 ]
62
+
63
+# Screen
64
+urlpatterns += [
65
+    url(r'^screen/login$', screen_views.screen_login, name='screen_login'),
66
+    url(r'^screen/info/set$', screen_views.screen_info_set, name='screen_info_set'),
67
+    url(r'^screen/info$', screen_views.screen_info, name='screen_info'),
68
+]

+ 1 - 0
utils/redis/rkeys.py

@@ -1,3 +1,4 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3 3
 HY_QRCODE_URL_HASH = 'twjc:qrcode:url:hash'  # scene:qrcode_url
4
+TWJC_POINT_INFO = 'twjc:point:info:%s'  # uuid:point_id

+ 12 - 0
utils/redis/rpoint.py

@@ -0,0 +1,12 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+from utils.redis.connect import r
4
+from utils.redis.rkeys import TWJC_POINT_INFO
5
+
6
+
7
+def set_point_info(uuid, point_id):
8
+    r.set(TWJC_POINT_INFO % uuid, point_id, ex=r.REDIS_EXPIRED_ONE_HOUR)
9
+
10
+
11
+def get_point_info(uuid):
12
+    return r.get(TWJC_POINT_INFO % uuid)